﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;

namespace WFExtended.Twitter
{
    /// <summary>
    /// List
    /// </summary>
    [DataContract]
    public class List
    {
        /// <summary>
        /// Gets or sets the ID.
        /// </summary>
        /// <value>
        /// The ID.
        /// </value>
        [DataMember(Name = "id")]
        public long ID { get; set; }

        /// <summary>
        /// Gets or sets the ID string.
        /// </summary>
        /// <value>
        /// The ID string.
        /// </value>
        [DataMember(Name = "id_str")]
        public string IDString { get; set; }

        /// <summary>
        /// Gets or sets the name.
        /// </summary>
        /// <value>
        /// The name.
        /// </value>
        [DataMember(Name = "name")]
        public string Name { get; set; }

        /// <summary>
        /// Gets or sets the URI.
        /// </summary>
        /// <value>
        /// The URI.
        /// </value>
        [DataMember(Name = "uri")]
        public string Uri { get; set; }

        /// <summary>
        /// Gets or sets the subscriber count.
        /// </summary>
        /// <value>
        /// The subscriber count.
        /// </value>
        [DataMember(Name = "subscriber_count")]
        public int SubscriberCount { get; set; }

        /// <summary>
        /// Gets or sets the member count.
        /// </summary>
        /// <value>
        /// The member count.
        /// </value>
        [DataMember(Name = "member_count")]
        public int MemberCount { get; set; }

        /// <summary>
        /// Gets or sets the mode.
        /// </summary>
        /// <value>
        /// The mode.
        /// </value>
        [DataMember(Name = "mode")]
        public string Mode { get; set; }

        /// <summary>
        /// Gets or sets the description.
        /// </summary>
        /// <value>
        /// The description.
        /// </value>
        [DataMember(Name = "description")]
        public string Description { get; set; }

        /// <summary>
        /// Gets or sets the slug.
        /// </summary>
        /// <value>
        /// The slug.
        /// </value>
        [DataMember(Name = "slug")]
        public string Slug { get; set; }

        /// <summary>
        /// Gets or sets the full name.
        /// </summary>
        /// <value>
        /// The full name.
        /// </value>
        [DataMember(Name = "full_name")]
        public string FullName { get; set; }

        /// <summary>
        /// Gets or sets the created at.
        /// </summary>
        /// <value>
        /// The created at.
        /// </value>
        [DataMember(Name = "created_at")]
        public string CreatedAt { get; set; }

        /// <summary>
        /// Gets or sets a value indicating whether this <see cref="List"/> is following.
        /// </summary>
        /// <value>
        ///   <c>true</c> if following; otherwise, <c>false</c>.
        /// </value>
        [DataMember(Name = "following")]
        public bool Following { get; set; }

        /// <summary>
        /// Gets or sets the user.
        /// </summary>
        /// <value>
        /// The user.
        /// </value>
        [DataMember(Name = "user")]
        public User User { get; set; }
    }
}
